/**
 * @swagger
 * /api/room/efficiency-analysis:
 *   get:
 *     tags:
 *       - 房屋管理
 *     summary: 获取房屋效率分析数据
 *     description: 分析房屋使用效率、空间利用率和优化潜力
 *     responses:
 *       200:
 *         description: 成功获取效率分析数据
 *         content:
 *           application/json:
 *             schema:
 *               type: object
 *               properties:
 *                 code:
 *                   type: integer
 *                   example: 200
 *                   description: 响应状态码
 *                 message:
 *                   type: string
 *                   example: "效率分析获取成功"
 *                   description: 响应消息
 *                 data:
 *                   type: object
 *                   properties:
 *                     roomUtilizationRate:
 *                       type: string
 *                       description: 房间利用率（%）
 *                       example: "85.50"
 *                     averageUsageAreaPerRoom:
 *                       type: string
 *                       description: 平均每个房间的使用面积
 *                       example: "45.20"
 *                     averageBuildingAreaPerRoom:
 *                       type: string
 *                       description: 平均每个房间的建筑面积
 *                       example: "52.80"
 *                     publicRoomAreaRatio:
 *                       type: string
 *                       description: 公用房间面积占比（%）
 *                       example: "25.30"
 *                     privateRoomAreaRatio:
 *                       type: string
 *                       description: 私用房间面积占比（%）
 *                       example: "74.70"
 *                     roomsPerAcre:
 *                       type: string
 *                       description: 每亩土地上的房间数
 *                       example: "12.50"
 *                     buildingAreaPerAcre:
 *                       type: string
 *                       description: 每亩土地上的建筑面积
 *                       example: "660.00"
 *                     spaceEfficiencyData:
 *                       type: object
 *                       description: 空间使用效率数据 - 仅包含计算结果，不含评级
 *                       properties:
 *                         utilizationRate:
 *                           type: string
 *                           description: 空间利用率
 *                           example: "85.50"
 *                         averageRoomSize:
 *                           type: string
 *                           description: 平均房间大小
 *                           example: "45.20"
 *                     baseData:
 *                       type: object
 *                       properties:
 *                         totalRooms:
 *                           type: number
 *                           description: 总房间数
 *                           example: 150
 *                         publicRooms:
 *                           type: number
 *                           description: 公用房间数
 *                           example: 38
 *                         privateRooms:
 *                           type: number
 *                           description: 私用房间数
 *                           example: 112
 *                         totalBuildingArea:
 *                           type: number
 *                           description: 总建筑面积
 *                           example: 7920.0
 *                         totalUsageArea:
 *                           type: number
 *                           description: 总使用面积
 *                           example: 6780.0
 *                         totalLandAcres:
 *                           type: number
 *                           description: 总土地面积（亩）
 *                           example: 12.0
 *                     calculations:
 *                       type: object
 *                       properties:
 *                         utilizationRateDesc:
 *                           type: string
 *                           description: 利用率计算说明
 *                           example: "使用面积6780.0㎡ / 建筑面积7920.0㎡ × 100%"
 *                         avgRoomAreaDesc:
 *                           type: string
 *                           description: 平均房间面积计算说明
 *                           example: "总使用面积6780.0㎡ / 总房间数150间"
 *                         landEfficiencyDesc:
 *                           type: string
 *                           description: 土地效率计算说明
 *                           example: "总房间数150间 / 土地面积12.0亩"
 *       500:
 *         description: 服务器内部错误
 */
const { query } = require('../../../lib/db')
const { success, error, handleResponse } = require('../../../lib/response')
const { withCors } = require('../../../lib/cors')

/**
 * 处理房屋效率分析请求
 * @param {Object} req - 请求对象
 * @param {Object} res - 响应对象
 */
async function handler(req, res) {

  try {
    const sql = `
      SELECT 
        SUM(ZFJJS) as totalRooms,
        SUM(GYFJS) as publicRooms,
        SUM(XXBXZJZMJ) as totalBuildingArea,
        SUM(XXBXZSYYMJ) as totalUsageArea,
        SUM(TJTDMS) as totalLandAcres
      FROM wd_zcgk_bxzyhz
    `

    const result = await query(sql)
    
    if (!result || result.length === 0) {
      return handleResponse(res, error('暂无房产数据', 404))
    }

    const data = result[0]
    const totalRooms = parseInt(data.totalRooms) || 0
    const publicRooms = parseInt(data.publicRooms) || 0
    const totalBuildingArea = parseFloat(data.totalBuildingArea) || 0
    const totalUsageArea = parseFloat(data.totalUsageArea) || 0
    const totalLandAcres = parseFloat(data.totalLandAcres) || 0

    // 计算私用房间数
    const privateRooms = totalRooms - publicRooms

    // 效率分析指标
    const efficiencyAnalysis = {
      // 房间利用率（使用面积 / 建筑面积）
      roomUtilizationRate: totalBuildingArea > 0 ? 
        ((totalUsageArea / totalBuildingArea) * 100).toFixed(2) : 0,
      
      // 平均每个房间的使用面积
      averageUsageAreaPerRoom: totalRooms > 0 ? 
        (totalUsageArea / totalRooms).toFixed(2) : 0,
      
      // 平均每个房间的建筑面积
      averageBuildingAreaPerRoom: totalRooms > 0 ? 
        (totalBuildingArea / totalRooms).toFixed(2) : 0,
      
      // 公用房间面积占比（假设公用房间和私用房间平均面积相同）
      publicRoomAreaRatio: totalRooms > 0 ? 
        ((publicRooms / totalRooms) * 100).toFixed(2) : 0,
      
      // 私用房间面积占比
      privateRoomAreaRatio: totalRooms > 0 ? 
        ((privateRooms / totalRooms) * 100).toFixed(2) : 0,
      
      // 土地使用效率（每亩土地上的房间数）
      roomsPerAcre: totalLandAcres > 0 ? 
        (totalRooms / totalLandAcres).toFixed(2) : 0,
      
      // 土地建筑效率（每亩土地上的建筑面积）
      buildingAreaPerAcre: totalLandAcres > 0 ? 
        (totalBuildingArea / totalLandAcres).toFixed(2) : 0,
      
      // 空间使用效率数据 - 仅包含计算结果，不含评级
      spaceEfficiencyData: {
        utilizationRate: totalBuildingArea > 0 ? ((totalUsageArea / totalBuildingArea) * 100).toFixed(2) : '0',
        averageRoomSize: totalRooms > 0 ? (totalUsageArea / totalRooms).toFixed(2) : '0'
      },
      
      // 原始数据
      baseData: {
        totalRooms,
        publicRooms,
        privateRooms,
        totalBuildingArea,
        totalUsageArea,
        totalLandAcres
      },
      
      // 计算说明
      calculations: {
        utilizationRateDesc: `使用面积${totalUsageArea}㎡ / 建筑面积${totalBuildingArea}㎡ × 100%`,
        avgRoomAreaDesc: `总使用面积${totalUsageArea}㎡ / 总房间数${totalRooms}间`,
        landEfficiencyDesc: `总房间数${totalRooms}间 / 土地面积${totalLandAcres}亩`
      }
    }

    return handleResponse(res, success(efficiencyAnalysis, '效率分析获取成功'))

  } catch (err) {
    console.error('效率分析接口错误:', err)
    return handleResponse(res, error('服务器内部错误', 500))
  }
}

export default withCors(handler, ['GET'])